package bank;

public class _48Rotate {
    public static void rotate(int[][] matrix) {
        //  旋转图像九十度可以看成两步操作
        //  第一步先将图像上下翻转，第二步再将图像沿右对角线翻折
        int len = matrix.length;

        //  上下翻折
        for (int i = 0;i < len/2;i++){
            for (int j = 0;j < len;j++){
                //  交换上端和下端的元素
                //  第 i 行的元素对应与第 len-i-1 行的元素互换
                int temp = matrix[i][j];
                matrix[i][j] = matrix[len-i-1][j];
                matrix[len-i-1][j] = temp;
            }
        }

        //  对角翻折
        for (int i = 0;i < len;i++){
            for (int j = i+1;j < len;j++){
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }

    }
}
